home *** CD-ROM | disk | FTP | other *** search
/ Risc World 3 / Risc World 3.iso / SOFTWARE / ISSUE6 / PD / PDF / DrawFile / h / GuiDrawFileSprite < prev    next >
Encoding:
Text File  |  2003-02-14  |  3.0 KB  |  85 lines

  1. //--------------------------------------------------------------------------
  2. //
  3. //   Copyright (c) 2002, Colin Granville
  4. //
  5. //   All rights reserved.
  6. //
  7. //   Redistribution and use in source and binary forms, with or
  8. //   without modification, are permitted provided that the following 
  9. //   conditions are met:
  10. //
  11. //      * Redistributions of source code must retain the above copyright 
  12. //        notice, this list of conditions and the following disclaimer.
  13. //
  14. //      * Redistributions in binary form must reproduce the above 
  15. //        copyright notice, this list of conditions and the following 
  16. //        disclaimer in the documentation and/or other materials 
  17. //        provided with the distribution.
  18. //
  19. //      * The name Colin Granville may not be used to endorse or promote 
  20. //        products derived from this software without specific prior 
  21. //        written permission.
  22. //
  23. //   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
  24. //   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
  25. //   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
  26. //   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
  27. //   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
  28. //   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
  29. //   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
  30. //   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
  31. //   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
  32. //   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
  33. //   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
  34. //   OF THE POSSIBILITY OF SUCH DAMAGE.
  35. //
  36. //--------------------------------------------------------------------------
  37.  
  38. #ifndef GuiDrawFileSprite_h
  39. #define GuiDrawFileSprite_h
  40.  
  41. #include "GuiDrawFile.h"
  42.  
  43. class GuiDrawFileSpriteBlock
  44. {
  45.   public:
  46.     int            size;
  47.     char           name[12];
  48.     int            width;
  49.     int            height;
  50.     int            leftHandWastage; //0 for new sprite formats
  51.     int            lastBitUsed;
  52.     int            offsetToImage;
  53.     int            offsetToMask;
  54.     unsigned int   mode;
  55. };
  56.  
  57. //***************************************************************
  58.  
  59. class GuiDrawFileSprite
  60. {
  61.   public:
  62.     enum {OBJECT_ID =13};
  63.  
  64.     GuiDrawFileSprite(GuiDrawFile&);
  65.     ~GuiDrawFileSprite();
  66.  
  67.     void start(int width_pix,int height_pix,int bpp);
  68.     void startMask(); //optional
  69.     void startMaskFill(); //optional
  70.     void startImage();
  71.     void end(const GuiTransform&, const GuiBBox& bounds);
  72.  
  73.     void put(int i)          {drawfile.put(i);}
  74.     void put(unsigned int i) {drawfile.put(i);}
  75.     char* getPtr()           {return drawfile.getPtr(startPos+
  76.                                                      sizeof(GuiDrawFileGraphicsObject)+
  77.                                                      sizeof(GuiTransform));}
  78.   private:
  79.     GuiDrawFile&              drawfile;
  80.     size_t                    startPos;
  81.     GuiDrawFileSpriteBlock    sprite;
  82. };
  83.  
  84. #endif
  85.